
simplest possible:

applet
	spinning, cycling thru 5 platonic solids
		each builds card by card, spins, then disappears
	manual grip rotation, freeze spin
	large (~ full screen) size - js control?


z buffered unclipped texture mapped quads


view
	lookpoint 0,0,0
	eyepoint  0,0,-1
	perspectiveness
	screenscaling

perspective correct texture mapper
	div by two in x and y depending on angle of plane
	each tile affine mapped

render buffers
	color 16 bit
	z 16 bit



cardahedron
	construct( framerate, textures )
	notifyOfFramerate
	setTextures
	draw
	update
	move

	tetracardahedron, hexacardahedron, octacardahedron, dodecacardahedron, icosacardahedron

card
	construct( framerate, textures )
	notifyOfFramerate
	setTextures
	draw
	update
	move
	

card.draw
	perspectiveness, screenscaling
	pts[4], textureMap1[], textureMap2[], 
	zBuffer[], image[]
{

	determine card angle
	calc tile division
	
	
	/// card
	{
		/// tile
		{
			/// span
			for( ; ; )
			{
				/// check z buffer
				if( zbuffer[ zIndex ] >= z )
				{
					/// write color and z
					/// shading ?
					image[ iIndex ]   = texture[ (tx >> 16) + ((ty >> 16) * tWidth) ];
					zbuffer[ zIndex ] = z;
				}

				/// skip increments if last iteration
				if(  )
				{
					break;
				}

				++iIndex;
				++zIndex;
				z  += zInc;
				tx += txInc;
				ty += tyInc;
			}
		}
	}	
}
	












to draw :
	face-centric convex/concave
	angled edge-centric convex/concave


card
{
	draw( bool frontFacing, bool checkHidden )
	draw( bool frontFacing, bool corners, bool checkHidden )
}


face-centric convex
	draw front facing cards
		non corner parts
			write color, id
		corner parts (overdrawing noncorners)
			write color, z
	draw back facing cards
		non corner parts
			read id
			if id is 0 - write
				check at verts, tiles, spans, pixels (same id means skip portion)
				write color
		corner parts
			read color, z
			if not colored - write
			if colored and z in front - write
				check at verts, span ends, pixels

face-centric concave

angled edge-centric convex

angled edge-centric concave



render buffers (separate or packed?)
	16 bit color
	8 bit id - init to 0
	8 bit z  - init to 255





